home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 3: CDPD 3
/
Almathera Ten on Ten - Disc 3: CDPD3.iso
/
ab20
/
unarced
/
utilities
/
shells
/
csh
/
tips.doc
< prev
next >
Wrap
Text File
|
1995-03-17
|
7KB
|
192 lines
Ein paar gute Ideen:
EDITIERUNG
Die oft vorkommende Situation:
$ mkdir documents
$ cd documents
kann abgekürzt werden:
$ mk documents
$ [CTRL-T] [RETURN] (fügt alles ausser dem ersten Word der
vorherigen Zeile ein)
Auf sehr häufig:
$ mv document document1
kann durch
$ mv document [CTRL-P]1
abgekürzt werden, CTRL-p dupliziert das vorhergehende Wort.
Sie haben sich vielleicht schon gefragt wozu ein CTRL-N (aktuelle Zeile
nicht ausführen) gut sein soll. Stellen wir uns vor Sie haben gerade
getippt:
$ rm dh1:grafik/lo-res/gorilla
als Ihnen einfällt, das es doch besser wäre eine Kopie dieses Bildes auf
Diskette abzuspeichern. Viele würden jetzt die Zeile löschen. Da sie ein
toller Junge sind, tun Sie folgendes:
$ [CTRL-N] (läßt diese Zeile auf sich beruhen)
$ co[CTRL-T] df0: (kopiert den Gorilla nach df0:)
$ [Cursor-Auf][Cursor-Auf] (wir sind wieder da wo wir waren)
Im Falle Sie wissen nicht was die Kommandospeicher Ergänzung ist:
$ search *.c *.h makfile foobar
$ ram:
$ dir
$ rm tmpfile
Jetzt wollen Sie den Suchbefehl wiederholen, einfach
$ se[Shift-Cursor-Auf]
drücken, und der letzte Befehl mit einem 'se' am Anfang wird
hervorgeholt.
Sie wollen die Datei löschen:
$ rm dh2:comm/uucp/mail/junk/409
sind aber weit weg von diesem Ordner, dann geben Sie ein:
$ rm ju[ESC-c]409 (fügt den resultierenden Pfad von cd ju ein)
Dieselbe Funktion kann auch für ein 'cd' verwendet werden. Stellen wir
uns vor, Sie haben mehrere 'Junk' Ordner:
$ cd ju[ESC-c][CTRL-R][CTRL-R][CTRL-R]
Damit können Sie die verschiednen 'Junk'-Ordner wechseln, bis Sie den
Richtigen gefunden haben.
Nehmen wir an wir hätten die Dateien comm1.c, comm2.c und comm3.c und ihre .o
Dateien. Sie wollen nun comm3.c erreichen:
$ co[Shift-Tab]1[Tab]
Natürlich ist dies bei längeren Dateinamen noch nützlicher.
Sie können mittles der Tab-Dateinamen-Expandierung jedes Suchmuster
expandieren, nicht nur Abkürzungen. Wollen Sie nun alle .c Dateien ausser
dem letzten löschen:
$ rm *.c[ESC-Tab][CTRL-W]
Zusätzlich können Sie alle Dateien sehen bevor Sie sie löschen.
Nun stellen wir uns vor Sie haben gerade eingegeben:
$ dir
$ foreach i ( *.c ) "e >>ram:temp $i"
$ more ram:temp
Und Sie wollen diese drei Kommandos nocheinmal ausführen:
$ [Cursor-Auf][Cursor-Auf][Cursor-Auf][ESC-Return][CTRL-R][CTRL-R]
Die Editierung ist nicht die Beste, dies liegt einfach an der Komplexität
Tastendrücke von der Konsole mittles Raw-Kodes zu interpretieren,
ausserdem ist es unmöglich diese von einem VT220 Terminal zu erhalten.
Deshalb die vielen CTRL und ESC Kombinationen. Haben Sie sie erstmal
gelernt (die meisten sind wie beim EMACS), können Sie sich eine Menge
Tipparbeit sparen.
KOMMANDOS
Hier ist es wirklich einfach: Nutzen sie Aliase, Aliase und Aliase.
Um diese schnell und einfach zu erstellen, ist es sinnvoll, ein Alias zu
erstellen (z.B. 'le') das Ihre Login-Datei editiert, ein anderes, welches
es erneut ausführt.
Wenn Sie die Default Argumente der Kommandos nicht mögen, dann können Sie
sie mit einem Alias ändern, etwa wie folgt:
$ alias dir "dir -q"
Ab jetzt wird dir keine Blöcke mehr anzeigen.
Wenn Ihre Aliase Argumente haben, z.B:
$ alias sc "search *.c
können Probleme auftauchen, wenn Sie selber Argumente mitgeben, in etwa:
$ sc -c "hello world"
Dies wird offensichtlich nicht funktionieren. Dazu ist @pickopts da:
$ alias sc "%a search @pickopts( $a ) *.c @pickargs( $a )
Sobald Sie viele Aliase haben, ist es sinnvoll diese sortiert zu halten.
Sie können sie auch kommentieren: Erstellen Sie eine Datei 'aliase.doc'
und setzen Sie _man auf aliase.doc csh.doc
$ set _man aliase.doc csh.doc
Auf diesem Wege können Sie die Aliase in einer speraten Datei
dokmentieren.
Möchten Sie ein Alias erstellen, welches Argumente akzeptiert, können Sie
dies mit 'if -o' tun.
$ alias gut "%a if -o v $a;echo -n"Sehr";endif;echo gute Arbeit, @arg( $a )
$ gut Erna -> gute Arbeit, Erna
$ gut -v Erna -> Sehr gute Arbeit, Erna
'cat' kann benutzt werden, um kleine Textdateien zu erstellen:
$ cat >MeineDatei
hallo du da
[CTRl-\]
Die Tastenkombination [CTRL-\] ist gleichwertig zu EOF.
FUNKTIONEN
@age ist sehr nützlich für Archivierungs-Stapeldateien:
$ foreach i ( * ) "if @age( $i ) > 30;cp -m $i backup:;endif
@clinum kann benutzt werden, 'break' und 'pri' flexibler zu gestalten:
$ alias break "%a break @clinum( $a )
Ab jetzt ist es möglich etwa: break cc einzugeben. Nummern sind nach wie
vor erlaubt.
@complete simuliert den Effekt der Tab-Dateinamen-Ergänzung. Das heisst,
Sie brauchen TAB nicht selber zu drücken:
$ alias edit "%a ced @complete( $a * )
@confirm kann für eine Sicherheitsabfrage benutzt werden:
$ alias rm "%a rm @confirm( $a )
@howmany ist sinnvoll für die Startdatei:
$ if $howmany = 1; window -l;endif
@intersect, @union und @without sind geeignet für eine Menge von
Applikationen. Sie können damit z.B: alle Dateien eines Freundes in der
Variablen $Seins (etwa erstellt mit 'dir -np >temp; readfile Seins <temp')
und ihre Dateien in $Meins, dann können Sie sehen was er hat und Sie
nicht, indem Sie eingeben:
$ echo @without( $Seins , $Meins )
Um die unterschiedlichen Pfade zu ignorieren benutzen Sie:
$ set Seins @basename( Seins )
Haben Sie die Dateien ohne Pfadnamen, können Sie diesen in der Datei temp
ersuchen.
@opt und @arg werden benutzt, wenn Sie ein Alias haben, welches bereits
Argumente an ein Kommando übergibt, dem Benutzer aber auch eigene
Argumente zur Verfügung stellen soll:
$ alias sc "%a search @opt( $a ) *.c @arg( $a )
@volume ist sinnvoll um herauszubekommen, ob eine Diskette im Laufwerk
steckt. Requester werden vermieden, es wird eine leere Zeichenkette
zurückgegeben, ist die Diskette nicht vorhanden.
VARIABLEN
$_except kann lokal gehalten werden. In diesem Fall müssen Sie eine
spezielle Fehlerbehandlung für das aktuelle Alias oder die Stapeldatei
schreiben.
$_man kann mehrere Pfade und Dateinamen enthalten. Somit können Sie
eigene Funktionen, Aliase, etc. kommentieren.
Arbeiten Sie mit grossen Dateien in der Pipe, können Sie den temporären
Ordner der Pipe in $_pipe auf die Festplatte legen.
PARSER
Müssen Sie eine Zeichenkette an eine Variable hängen, so können Sie das
wie folgt tun:
$ set bla fasel
$ echo $bla\blubber ->faselblubber
Das '\' ist nicht notwendig, wenn das erste Zeichen der anzuhängenden
Zeichenkette weder ein Buchstabe oder eine Zahl ist.
Um sicher zu gehen, das kein internes Kommando aufgerufen wird,
schreiben Sie den ersten Buschstaben gross:
$ Dir ram: ALL (nutzt Dir von C:)
Um existierende Aliase die mit einem Kommando kolliedieren zu umgehen
tippen Sie folgendes:
$ alias echo "blafasel"
$ \echo hallo -> hallo
Haben Sie auch Tips ? Noch mehr Ideen ? Schreiben Sie mir !
Addresse bitte dem csh.doc entnehmen.